package com.api.dao.entities;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * @author 李大牛家的牛 (scafel@163.com)
 * @product IntelliJ IDEA
 * @createDate 2025/5/20-13:54
 * @description TODO...
 **/
@Data
public class BasicEntities {

    /**
     * id 自增长主键
     */
    @TableId(type = IdType.AUTO)
    @JsonIgnore
    private Integer id;
    /**
     * 唯一编码 唯一索引
     */
    @TableField(value = "code")
    @JsonProperty(value = "code")
    private String code;
    /**
     * 排序字段
     */
    @TableField(value = "sort")
    @JsonProperty(value = "sort")
    private int sort;
    /**
     * 状态字段 0-禁用 1-正常
     */
    @TableField(value = "status")
    @JsonProperty(value = "status")
    private int status;
    /**
     * 保护字段 0-未受到保护 1- 保护中
     */
    @TableField(value = "protect")
    @JsonProperty(value = "protect")
    private int protect;
    /**
     * 热门字段 0-非热门 1-热门
     */
    @TableField(value = "hot")
    @JsonProperty(value = "hot")
    private int hot;
    /**
     * 逻辑删除字段 0-未删除 1-已删除
     */
    @TableField(value = "deleted")
    @JsonProperty(value = "deleted")
    @JsonIgnore
    private int deleted;
    /**
     * 乐观锁字段 默认为0 记录更新次数
     */
    @TableField(value = "version")
    @Version
    @JsonProperty(value = "version")
    @JsonIgnore
    private long version;
    /**
     * 创建时间 时间戳
     */
    @TableField(value = "c_time")
    @JsonProperty(value = "c_time")
    @JsonIgnore
    private long ctime;
    /**
     * 更新时间 时间戳
     */
    @TableField(value = "u_time")
    @JsonProperty(value = "u_time")
    @JsonIgnore
    private long utime;
    /**
     * 删除时间 时间戳
     */
    @TableField(value = "d_time")
    @JsonProperty(value = "d_time")
    @JsonIgnore
    private long dtime;
    /**
     * 创建时管理员id
     */
    @TableField(value = "c_a_u_id")
    @JsonProperty(value = "c_a_u_id")
    private int cauId;
    /**
     * 更新时管理员id
     */
    @TableField(value = "u_a_u_id")
    @JsonProperty(value = "u_a_u_id")
    private int uauId;
    /**
     * 更新时用户id
     */
    @TableField(value = "u_m_u_id")
    @JsonProperty(value = "u_m_u_id")
    private int umuId;
    /**
     * 创建时用户id
     */
    @TableField(value = "c_m_u_id")
    @JsonProperty(value = "c_m_u_id")
    private int cmuId;
    /**
     * 更新时os 不一定准确
     */
    @TableField(value = "u_os")
    @JsonProperty(value = "u_os")
    private String uos;
    /**
     * 更新时ip 不一定准确
     */
    @TableField(value = "u_ip")
    @JsonProperty(value = "u_ip")
    private String uip;
    /**
     * 加密后的id字符串 非数据库字段
     */
    @TableField(exist = false)
    protected String enId;
    /**
     * 创建时间格式化时间字符串 非数据库字段
     */
    @JsonProperty(value = "c_time_value")
    @TableField(exist = false)
    protected String ctimeValue;
    /**
     * 更新时间格式化时间字符串 非数据库字段
     */
    @JsonProperty(value = "u_time_value")
    @TableField(exist = false)
    protected String utimeValue;
    /**
     * 删除时间格式化时间字符串 非数据库字段
     */
    @JsonProperty(value = "d_time_value")
    @TableField(exist = false)
    protected String dtimeValue;



}
